const events = [];

const $scroll = function(dom, fn) {
    events.push({ dom, fn });
    fn._index = events.length - 1;
};

$scroll.remove = function(fn) {
    fn._index && events.splice(fn._index, 1);
};

//上拉加载；
const Scroll = {
    addHandler: function(element, type, handler) {
        if (element.addEventListener)
            element.addEventListener(type, handler, false);
        else if (element.attachEvent) element.attachEvent("on" + type, handler);
        else element["on" + type] = handler;
    },
    listenTouchDirection: function() {
        this.addHandler(window, "scroll", function() {
            const wh = window.innerHeight,
                st = window.scrollY;
            events
                .filter(e => e.dom.scrollHeight && e.dom.scrollHeight > 0)
                .forEach(e => {
                    var dh = e.dom.scrollHeight;
                    var s = Math.ceil((st / (dh - wh)) * 100);
                    if (s > 85) e.fn();
                });
        });
    }
};

Scroll.listenTouchDirection();

export default $scroll;
export { Scroll };